package com.ruteroelmeromero.vista;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

import org.primefaces.model.map.DefaultMapModel;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Polyline;

import com.ruteroelmeromero.utils.Conexion;

@ManagedBean
@SessionScoped
public class Ventas extends Pagina  implements Serializable{
	private Date fecha;
	private List<SelectItem> vendedores;
	private List<Map> productos;
	private String titulo;
	public String getTitulo() {
		titulo = "Productos";
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public List<Map> getProductos() {
		return productos;
	}

	public void setProductos(List<Map> productos) {
		this.productos = productos;
	}

	private String vendedor;
	public MapModel getPolylineModel() {
		return polylineModel;
	}

	public void setPolylineModel(MapModel polylineModel) {
		this.polylineModel = polylineModel;
	}

	private MapModel polylineModel;

	public String getVendedor() {
		return vendedor;
	}

	public void setVendedor(String vendedor) {
		this.vendedor = vendedor;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public List<SelectItem> getVendedores() {
		vendedores = Conexion.combo("SELECT rutero,nombre FROM rutero ",
				"rutero", "nombre");
		return vendedores;
	}

	public void setVendedores(List<SelectItem> vendedores) {
		this.vendedores = vendedores;
	}

	public String buscar() {
		polylineModel = new DefaultMapModel();
		String query = "SELECT p.nombre, sum(vp.cantidad*p.precio) as total FROM producto p, venta v, venta_producto vp WHERE vp.producto = p.producto AND v.fecha = ? AND v.rutero = ? GROUP BY p.nombre";
		List<Map> lista = Conexion.listar(query, new java.sql.Date(getFecha().getTime()), Integer.parseInt(getVendedor()));
		setTitulo("Total Productos - " + lista.size());
		setProductos(lista);
		return "";
	}
}
